-
Notifications
You must be signed in to change notification settings - Fork 246
feat: expose execution client params to ev-node #2982
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
The latest Buf updates on your PR. Results from workflow CI / buf-check (pull_request).
|
|
Claude finished @julienrbrt's task in 4m 57s —— View job Comprehensive Code ReviewI've completed a thorough review of this PR. Here are my findings organized by category: 1. Architecture & Design ✅Strengths:
Concerns:
2. Performance & Resource Management
|
Summary of ChangesHello @julienrbrt, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly refactors the interaction between Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request refactors the Executor interface by removing the maxBytes return value from InitChain and ExecuteTxs. It introduces new interfaces, ExecutionInfoProvider and DATransactionFilter, to expose execution client parameters like MaxGas more explicitly. The changes are applied consistently throughout the codebase, including implementations, mocks, and tests. This is a solid refactoring that improves the separation of concerns. I've found one issue in a test file where a check was removed, weakening the test's validation.
| if len(resp.Msg.Txs) != len(expectedTxs) { | ||
| t.Fatalf("expected %d txs, got %d", len(expectedTxs), len(resp.Msg.Txs)) | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The check for the content of the returned transactions has been removed, which weakens the test. It now only verifies the number of transactions, not that they are the correct ones. It would be better to verify the content as well to ensure the server is returning the expected data.
if len(resp.Msg.Txs) != len(expectedTxs) {
t.Fatalf("expected %d txs, got %d", len(expectedTxs), len(resp.Msg.Txs))
}
for i, tx := range resp.Msg.Txs {
if string(tx) != string(expectedTxs[i]) {
t.Errorf("tx %d: expected %s, got %s", i, expectedTxs[i], tx)
}
}
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #2982 +/- ##
==========================================
- Coverage 58.63% 57.89% -0.75%
==========================================
Files 111 110 -1
Lines 10405 10526 +121
==========================================
- Hits 6101 6094 -7
- Misses 3659 3781 +122
- Partials 645 651 +6
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
a898b7b to
2800a75
Compare
| // Mempool txs are already validated, so we can skip parsing when not needed | ||
| if hasForceIncludedTransaction { | ||
| var ethTx types.Transaction | ||
| if err := ethTx.UnmarshalBinary(tx); err != nil { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
have you dont benchmarks on this flow to verify and document latency increases?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nope, because we just have to (https://github.com/evstack/ev-node/pull/2982/changes/BASE..edbdae99cbd768bcb10bf80a2286d7e3a8643769#diff-73d38fc0f126d3d764a9855162c561f8a2cfe9595029aa13f510ab5937885d2dL821).
The difference in this PR is that when there's a force tx we unmarshal all txs, while before we would unmarshal only force txs. In theory, given we process force txs per epoch (so not every blocks), this just mean 1 block with more cpu cycles used every da epoch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will that one block cause the block time to increase?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let me think how to benchmark this. I'll try to add something.
I think it could only when a chain is really congested with many big txs via mempool and 1+ tx on DA.
Because the duplicate work is only for the mempool one. But it is probably negligible.
tac0turtle
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good, we will need to benchmark and understand how this effects fast chains.
Closes: #2965